package com.galeno.hdfs;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

import java.io.IOException;

public class Hdfs1 {
    public static void main(String[] args) throws IOException {
        // 构造一个配置参数的封装对象
        /**
         * 此构造函数会自动将 classpath下的 core-default.xml  hdfs-default.xml
         * 然后加载classpath下的 core-site.xml, hdfs-site.xml
         */
        Configuration configuration=new Configuration();
        /**
         * 这样会覆盖掉之前从文件中加载的参数值
         */
       // configuration.set("dfs.replication","2");
       // configuration.set("fs.defaultFS","hdfs://galeno01:8020/");
        /**
         * 构造hdfs访问客户端
         */
        FileSystem fs = FileSystem.get(configuration);
        /**
         * 浏览hdfs根目录
         */
        FileStatus[] fileStatuses = fs.listStatus(new Path("/"));
        //遍历打印返回所有文件和文件夹的元信息
        for (FileStatus fileStatus : fileStatuses) {
            System.out.println("文件（夹）路径： " + fileStatus.getPath());
            System.out.println("文件（夹）长度： " + fileStatus.getLen());
            System.out.println("文件（夹）所有者： " + fileStatus.getOwner());
            System.out.println("文件（夹）所属组： " + fileStatus.getGroup());
            System.out.println("文件（夹）切块规格： " + fileStatus.getBlockSize());
            System.out.println("文件（夹）副本数量： " + fileStatus.getReplication());

            System.out.println("--------------------------------");
        }


        fs.close();


    }
}
